這禮拜與老師討論過專題後,決定用react
去寫前端。所以在剩下的天數裡,我決定來從頭學習react
,之後會在網頁上實作上去,所以今天就來了解react
的基本知識與用法!
先準備好需要的工具
可以幫我下載、更新、移除的功能,可以幫我執行常用命令。
想像在 App Store 下載一個 App,按「下載」之後可以一次把別人做好的功能放入到我的專案。
一個平台+一個工具
跟 React有什麼關係呢?
因為不管是 React、Vite、開發用的工具都透過 npm 安裝和管理
node -v
npm -v
在專案資料夾
npm create vite@latest my-react-app -- --template react
cd my-react-app
npm install
npm run dev
終端機會顯示一個本機網址,瀏覽器打開就能看到的起始頁
function Component()
→ 定義元件useState
→ 存放資料(像 consultations
)useEffect
→ 做初始化(像從 localStorage 抓資料)props
→ 元件之間傳遞資料map
→ 迭代渲染(顯示多個問題)通常會搭配 Tailwind CSS 美化 UI,換 Tailwind 只是語法不同
function Component()
→ 定義元件function Hello() {
return <h1>哈囉,我是 React!</h1>;
}
useState
→ 存放資料let consultations = []
來存資料useState
import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0); // count = 值, setCount = 更新它
return (
<div>
<p>現在數字是:{count}</p>
<button onClick={() => setCount(count + 1)}>加一</button>
</div>
);
}
useEffect
→ 初始化 / 副作用window.onload
或 DOMContentLoaded
時候跑一些程式。useEffect
。import { useEffect } from "react";
function App() {
useEffect(() => {
console.log("網頁載入完成,去 localStorage 抓資料!");
}, []); // [] 代表只在一開始執行一次
return <div>我的網站</div>;
}
props
→ 元件之間傳遞資料function Question(props: { text: string }) {
return <div>❓ {props.text}</div>;
}
function App() {
return (
<div>
<Question text="糖尿病要怎麼飲食?" />
<Question text="血糖機怎麼用?" />
</div>
);
}
→ 畫面會顯示兩個問題。
map
→ 迭代渲染forEach
或 map
來跑資料。map
直接生出很多元件。const consultations = [
{ id: 1, question: "糖尿病要怎麼飲食?" },
{ id: 2, question: "血糖機怎麼用?" },
];
function App() {
return (
<div>
{consultations.map(c => (
<div key={c.id}>❓ {c.question}</div>
))}
</div>
);
}
→ React 會幫你一次渲染出所有問題。
剛好用得到,又能練 React 基本功的功能:
useState
管理問題清單。map
顯示最新三則。setState
更新 + 存到 localStorage。onChange
、useState
)。useEffect
監聽時間,做提醒(或先顯示在列表就好)。最後再用 Tailwind 美化看看。
https://ithelp.ithome.com.tw/articles/10214942?sc=hot
https://developer.mozilla.org/zh-TW/docs/Learn_web_development/Core/Frameworks_libraries/React_getting_started
https://kucw.io/blog/restful-api/